package com.ruoyi.procurement.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.product.domain.Product;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProcurementOrder extends BaseEntity {
    private String beginTime;
    private String endTime;
    private String str;
    /**
     * 采购订单入库主键
     */
    private Long procurementWarehousingId;
    /**
     * 销货单主键
     */
    private Long saleGoodsId;
    /**
     * 订单日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date procurementWarehousingDate;
    /**
     * 订单编号
     */
    private String procurementWarehousingName;
    /**
     * 供应商主键
     */
    private Long supplierId;
    /**
     * 业务员主键
     */
    private Long userId;
    /**
     * 业务员名称
     */
    private String userName;
    /**
     * 公司主键
     */
    private Long deptId;
    /**
     * 公司名称
     */
    private String deptName;
    /**
     * 订单状态
     */
    private String procurementStatus;
    /**
     * 入库状态
     */
    private String procurementWarehousingStatus;
    /**
     * 订单备注
     */
    private String procurementWarehousingRemark;
    /**
     * 订单创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date createTime;

    private String batch;
    /**
     * 订单审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date auditTime;
    /**
     * 订单金额
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal purchaseAmount;
    /**
     * 订单金额(含税)
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal taxAmount;
    /**
     * 子集
     */
    private List<ProcurementModel> procurementModelList;
    private String productName;
    /**
     * 型号/规格
     */
    private String productType;
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal taxPrice;
    /**
     * 含税金额
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal taxTotal;
    /**
     * 公司地址
     */
    private String companyAdress;
    /**
     * 公司地址
     */
    private String comPhone;
    /**
     * 是否生成退货单
     */
    private String isReturn;
    /**
     * 产品集合
     */
    private List<Product> products;
    /**
     * 订单类型
     */
    private String orderType;
    private Long enterStockId;
    private Long enterStockModelId;

    public String getBatch() {
        return batch;
    }

    public void setBatch(String batch) {
        this.batch = batch;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public BigDecimal getTaxPrice() {
        return taxPrice;
    }

    public void setTaxPrice(BigDecimal taxPrice) {
        this.taxPrice = taxPrice;
    }

    public BigDecimal getTaxTotal() {
        return taxTotal;
    }

    public void setTaxTotal(BigDecimal taxTotal) {
        this.taxTotal = taxTotal;
    }

    public String getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(String beginTime) {
        this.beginTime = beginTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }

    public Long getEnterStockId() {
        return enterStockId;
    }

    public void setEnterStockId(Long enterStockId) {
        this.enterStockId = enterStockId;
    }

    public Long getEnterStockModelId() {
        return enterStockModelId;
    }

    public void setEnterStockModelId(Long enterStockModelId) {
        this.enterStockModelId = enterStockModelId;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public List<Product> getProducts() {
        return products;
    }

    public void setProducts(List<Product> products) {
        this.products = products;
    }

    public String getIsReturn() {
        return isReturn;
    }

    public void setIsReturn(String isReturn) {
        this.isReturn = isReturn;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getCompanyAdress() {
        return companyAdress;
    }

    public void setCompanyAdress(String companyAdress) {
        this.companyAdress = companyAdress;
    }

    public Long getSaleGoodsId() {
        return saleGoodsId;
    }

    public void setSaleGoodsId(Long saleGoodsId) {
        this.saleGoodsId = saleGoodsId;
    }

    public BigDecimal getPurchaseAmount() {
        return purchaseAmount;
    }

    public void setPurchaseAmount(BigDecimal purchaseAmount) {
        this.purchaseAmount = purchaseAmount;
    }

    public String getComPhone() {
        return comPhone;
    }

    public void setComPhone(String comPhone) {
        this.comPhone = comPhone;
    }

    public Long getProcurementWarehousingId() {
        return procurementWarehousingId;
    }

    public void setProcurementWarehousingId(Long procurementWarehousingId) {
        this.procurementWarehousingId = procurementWarehousingId;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public Date getProcurementWarehousingDate() {
        return procurementWarehousingDate;
    }

    public void setProcurementWarehousingDate(Date procurementWarehousingDate) {
        this.procurementWarehousingDate = procurementWarehousingDate;
    }

    public String getProcurementStatus() {
        return procurementStatus;
    }

    public void setProcurementStatus(String procurementStatus) {
        this.procurementStatus = procurementStatus;
    }

    public String getProcurementWarehousingName() {
        return procurementWarehousingName;
    }

    public void setProcurementWarehousingName(String procurementWarehousingName) {
        this.procurementWarehousingName = procurementWarehousingName;
    }

    public BigDecimal getTaxAmount() {
        return taxAmount;
    }

    public void setTaxAmount(BigDecimal taxAmount) {
        this.taxAmount = taxAmount;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getProcurementWarehousingStatus() {
        return procurementWarehousingStatus;
    }

    public void setProcurementWarehousingStatus(String procurementWarehousingStatus) {
        this.procurementWarehousingStatus = procurementWarehousingStatus;
    }

    public String getProcurementWarehousingRemark() {
        return procurementWarehousingRemark;
    }

    public void setProcurementWarehousingRemark(String procurementWarehousingRemark) {
        this.procurementWarehousingRemark = procurementWarehousingRemark;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public List<ProcurementModel> getProcurementModelList() {
        return procurementModelList;
    }

    public void setProcurementModelList(List<ProcurementModel> procurementModelList) {
        this.procurementModelList = procurementModelList;
    }
}
